
package com.kms.monitor;

import java.awt.BasicStroke;
import java.awt.Dimension;
import java.io.FileOutputStream;
import java.io.OutputStream;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYStepRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class TBSMonitorJfreechart extends ApplicationFrame
{

    public TBSMonitorJfreechart(String s)
    {
        super(s);
        JPanel jpanel = createDemoPanel();
        jpanel.setPreferredSize(new Dimension(500, 300));
        setContentPane(jpanel);
    }

    private static JFreeChart createChart(XYDataset xydataset)
    {
        JFreeChart jfreechart = ChartFactory.createXYLineChart("XYStepRenderer Demo 1", "X", "Y", xydataset, PlotOrientation.VERTICAL, true, true, false);
        XYPlot xyplot = (XYPlot)jfreechart.getPlot();
        XYStepRenderer xysteprenderer = new XYStepRenderer();
        xysteprenderer.setBaseShapesVisible(true);
        xysteprenderer.setSeriesStroke(0, new BasicStroke(2.0F));
        xysteprenderer.setSeriesStroke(1, new BasicStroke(2.0F));
        xysteprenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
        xysteprenderer.setDefaultEntityRadius(6);
        xyplot.setRenderer(xysteprenderer);
        return jfreechart;
    }

    private static XYDataset createDataset()
    {
        XYSeries xyseries = new XYSeries("Series 1");
        xyseries.add(0, 8D);
        xyseries.add(1, 8D);
        xyseries.add(2, 2D);
        xyseries.add(3, 2D);
        xyseries.add(4, 2D);
        xyseries.add(5, 8D);
        xyseries.add(6, 8D);
        xyseries.add(7, 8D);
        xyseries.add(8, 8D);
        xyseries.add(9, 8D);
        xyseries.add(10, 8D);
        xyseries.add(11, 8D);
        xyseries.add(12, 8D);
        xyseries.add(13, 8D);
        xyseries.add(14, 8D);
        xyseries.add(15, 8D);
        xyseries.add(16, 8D);
        xyseries.add(17, 8D);
        xyseries.add(18, 8D);
        xyseries.add(19, 8D);
        xyseries.add(20, 8D);
        xyseries.add(21, 8D);
        xyseries.add(22, 8D);
        xyseries.add(23, 8D);
        xyseries.add(24, 8D);
        xyseries.add(25, 8D);
        xyseries.add(26, 8D);
        xyseries.add(27, 8D);
        xyseries.add(28, 8D);
        xyseries.add(29, 8D);
        xyseries.add(30, 8D);
        xyseries.add(31, 8D);
        xyseries.add(32, 8D);
        xyseries.add(33, 8D);
        xyseries.add(34, 8D);
        xyseries.add(35, 8D);
        xyseries.add(36, 2D);
        xyseries.add(37, 2D);
        xyseries.add(38, 2D);
        xyseries.add(39, 2D);
        xyseries.add(40, 2D);
        xyseries.add(41, 2D);
        xyseries.add(42, 2D);
        xyseries.add(43, 2D);
        xyseries.add(44, 2D);
        xyseries.add(45, 8D);
        xyseries.add(46, 8D);
        xyseries.add(47, 8D);
        xyseries.add(48, 8D);
        xyseries.add(49, 8D);
        xyseries.add(50, 2D);
        xyseries.add(51, 2D);
        xyseries.add(52, 2D);
        xyseries.add(53, 2D);
        xyseries.add(54, 2D);
        xyseries.add(55, 2D);
        xyseries.add(56, 2D);
        xyseries.add(57, 2D);
        xyseries.add(58, 2D);
        xyseries.add(59, 8D);
        XYSeries xyseries1 = new XYSeries("Series 2");
        xyseries1.add(0D,10D);
        XYSeriesCollection xyseriescollection = new XYSeriesCollection();
        xyseriescollection.addSeries(xyseries);
        xyseriescollection.addSeries(xyseries1);
        return xyseriescollection;
    }

    public static JPanel createDemoPanel()
    {
        JFreeChart jfreechart = createChart(createDataset());
       
		try {
			OutputStream os = new FileOutputStream("tbsmonitor.png");  
			ChartUtilities.writeChartAsPNG(os,jfreechart,900,350);
			os.flush();
			os.close(); 
		} catch (Exception e) {
			e.printStackTrace();
		}
        return new ChartPanel(jfreechart);
    }

    public static void main(String args[])
    {
        TBSMonitorJfreechart xysteprendererdemo1 = new TBSMonitorJfreechart("XYStepRenderer Demo 1");
        xysteprendererdemo1.pack();
        RefineryUtilities.centerFrameOnScreen(xysteprendererdemo1);
        xysteprendererdemo1.setVisible(true);
    }
}